package com.draven.service;

import com.draven.entity.SysUser;
import com.draven.vo.LoginVO;
import com.draven.vo.UserInfoVO;

/**
 * 用户服务接口
 */
public interface SysUserService {

    /**
     * 用户注册
     *
     * @param username 用户名
     * @param password 密码
     * @param email    邮箱
     * @return 用户ID
     */
    Long register(String username, String password, String email);

    /**
     * 用户登录
     *
     * @param username 用户名
     * @param password 密码
     * @return 登录信息
     */
    LoginVO login(String username, String password);

    /**
     * 获取用户信息
     *
     * @param userId 用户ID
     * @return 用户信息
     */
    UserInfoVO getUserInfo(Long userId);

    /**
     * 修改密码
     *
     * @param userId      用户ID
     * @param oldPassword 旧密码
     * @param newPassword 新密码
     */
    void updatePassword(Long userId, String oldPassword, String newPassword);

    /**
     * 根据用户名查询用户
     *
     * @param username 用户名
     * @return 用户信息
     */
    SysUser getByUsername(String username);
} 